package parte2;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.ComponentOrientation;
import java.awt.FlowLayout;
import java.awt.Font;

import javax.swing.*;

public class Interfaz extends JFrame{

	private static final long serialVersionUID = 1L;
	private String valorEntradaStr = "0";
	private int valorEntradaInt = 0;
	
	/*
	 * Setters y getters
	 * PENDIENTES DE FUNCIONALIDAD
	 */
	private void setValorEntradaStr(String valorNuevo){
		valorEntradaStr = valorNuevo;
	};
	private String getValorEntradaStr(){
		return valorEntradaStr;
	};
	private void setValorEntradaInt(int valorNuevo){
		valorEntradaInt = valorNuevo;
	};
	private int getValorEntradaInt(){
		return valorEntradaInt;
	};
	
	
	
	public Interfaz(){
		this.setLayout(new BorderLayout()); 
		
		// Creación de paneles
		JPanel cuadroDeTexto = new JPanel(null);
		JPanel cuadroDeConjuntos = new JPanel(new FlowLayout());
		JPanel cuadroDe789 = new JPanel(new FlowLayout());
		JPanel cuadroDe456 = new JPanel(new FlowLayout());
		JPanel cuadroDe123 = new JPanel(new FlowLayout());
		JPanel cuadroDe0 = new JPanel(new FlowLayout());
		JPanel cuadroDelFondo = new JPanel(new FlowLayout());

		// Dimensiones de los paneles
		cuadroDeTexto.setBounds(0, 0, 320, 120);
		cuadroDeConjuntos.setBounds(0, 120, 320, 120);
		cuadroDe789.setBounds(0, 240, 320, 60);
		cuadroDe456.setBounds(0, 300, 320, 60);
		cuadroDe123.setBounds(0, 360, 320, 60);
		cuadroDe0.setBounds(0, 420, 320, 55);
		cuadroDelFondo.setBounds(0, 420, 320, 5);

		// Definición de colores de fondo
		cuadroDeTexto.setBackground(Color.black);
		cuadroDeConjuntos.setBackground(Color.black);
		cuadroDe789.setBackground(Color.black);
		cuadroDe456.setBackground(Color.black);
		cuadroDe123.setBackground(Color.black);
		cuadroDe0.setBackground(Color.black);
		cuadroDelFondo.setBackground(Color.black); // Solo existe para que no se me eche a perder el layout de los botones y no me los tire para arriba.
		
		// Area de texto y sus propiedades
		JTextArea entrada = new JTextArea(valorEntradaStr);
		entrada.setBounds(10, 10, 300, 100);
		entrada.setEditable(false);
		entrada.setFont(new Font("Monospaced", Font.BOLD, 50));;
		entrada.setBorder(BorderFactory.createEmptyBorder(10,10,0,0));
		cuadroDeTexto.add(entrada);
		
		/*
		 *  
		 *  Creación de botones
		 *  
		 */
		JButton Bot0, Bot1, Bot2, Bot3, Bot4, Bot5, Bot6, Bot7, Bot8, Bot9, BotPunto, BotRaíz, BotPotencia, BotSuma, BotResta, BotMult, BotDiv, BotLog, BotBorr, BotIgual;
		// Cuadro de 789
		Bot7 = new JButton("7");
		Bot8 = new JButton("8");
		Bot9 = new JButton("9");
		BotRaíz = new JButton("sqrt");
		BotPotencia = new JButton("^");
		
		// Cuadro de 456
		Bot4 = new JButton("4");
		Bot5 = new JButton("5");
		Bot6 = new JButton("6");
		BotDiv = new JButton("/");
		BotMult = new JButton("*");
		
		// Cuadro de 123
		Bot1 = new JButton("1");
		Bot2 = new JButton("2");
		Bot3 = new JButton("3");
		BotResta = new JButton("-");
		BotSuma = new JButton("+");
		
		// Cuadro de 0
		Bot0 = new JButton("0");
		BotPunto = new JButton(".");
		BotLog = new JButton("ln");
		BotIgual = new JButton("=");
		
		/*
		 * 
		 * Agregando botones a la calculadora
		 * 
		 */
		// Cuadro de 789
		cuadroDe789.add(Bot7);
		cuadroDe789.add(Bot8);
		cuadroDe789.add(Bot9);
		cuadroDe789.add(BotRaíz);
		cuadroDe789.add(BotPotencia);
		
		// Cuadro de 456
		cuadroDe456.add(Bot4);
		cuadroDe456.add(Bot5);
		cuadroDe456.add(Bot6);
		cuadroDe456.add(BotDiv);
		cuadroDe456.add(BotMult);
		
		// Cuadro de 123
		cuadroDe123.add(Bot1);
		cuadroDe123.add(Bot2);
		cuadroDe123.add(Bot3);
		cuadroDe123.add(BotResta);
		cuadroDe123.add(BotSuma);
		
		// Cuadro de 0
		cuadroDe0.add(Bot0);
		cuadroDe0.add(BotPunto);
		cuadroDe0.add(BotLog);
		cuadroDe0.add(BotIgual);
		
		/*
		 * Se le agregan funciones a los botones
		 */
		
		
		this.add(cuadroDeTexto);
		this.add(cuadroDeConjuntos);
		this.add(cuadroDe789);
		this.add(cuadroDe456);
		this.add(cuadroDe123);
		this.add(cuadroDe0);
		this.add(cuadroDelFondo);
		
		
		
		
	};
	
}
